Modern signal and image processing systems often perform arithmetic processes on matrix datasets. One fundamental matrix operation is matrix multiplication. Matrix multiplication has numerous applications such as image and video processing, radar and sonar signal processing, and in multi-dimensional data analysis. These applications may require flexible implementation providing a wide range of throughput (or conversion rate, measured in number of matrix multiplications performed per unit time) requirements. Such requirements can be difficult to implement while making optimum use of the system resource.